Fix for warning: unnecessary non-null assertion (!!) on a non-null receiver Removed multiple instances of unnecessary non-null assertions within the AOSP Calendar app as part of resolving warning messages. Bug: 237017037 Test: manual testing on bramble device and ran: adb shell am instrument -w com.android.calendar.tests With result: com.android.calendar.FormatDateRangeTest:. com.android.calendar.UtilsTests:.................. com.android.calendar.WeekNumberTest:. com.android.calendar.widget.CalendarAppWidgetServiceTest:.. Test results for InstrumentationTestRunner=...................... Time: 0.093 OK (22 tests) Change-Id: I455b76d79ee1518bb89721099430a0e3e5903faf (cherry picked from commit 505d6d4d32b2e59964b64f2139c6aa733b0aacbc) Merged-In: I455b76d79ee1518bb89721099430a0e3e5903faf 
diff --git a/src/com/android/calendar/AllInOneActivity.kt b/src/com/android/calendar/AllInOneActivity.kt index 90174eb..550bc54 100644 --- a/src/com/android/calendar/AllInOneActivity.kt +++ b/src/com/android/calendar/AllInOneActivity.kt 
@@ -358,7 +358,7 @@  val data: Uri? = intent?.getData()  if (data != null && data.isHierarchical()) {  val path = data.getPathSegments() - if (path?.size == 2 && path!![0].equals("events")) { + if (path?.size == 2 && path[0].equals("events")) {  try {  mViewEventId = data.getLastPathSegment()?.toLong() as Long  if (mViewEventId != -1L) { 
diff --git a/src/com/android/calendar/DayView.kt b/src/com/android/calendar/DayView.kt index 96d29bb..84ad583 100644 --- a/src/com/android/calendar/DayView.kt +++ b/src/com/android/calendar/DayView.kt 
@@ -835,7 +835,7 @@  if (diff < 0) {  diff += 7  } - time!!.monthDay -= diff + time.monthDay -= diff  time.normalize(true /* ignore isDst */)  }  } @@ -1135,7 +1135,7 @@  b.append(PERIOD_SPACE)  val `when`: String?  var flags: Int = DateUtils.FORMAT_SHOW_DATE - if (calEvent!!.allDay) { + if (calEvent.allDay) {  flags = flags or (DateUtils.FORMAT_UTC or DateUtils.FORMAT_SHOW_WEEKDAY)  } else {  flags = flags or DateUtils.FORMAT_SHOW_TIME @@ -1143,7 +1143,7 @@  flags = flags or DateUtils.FORMAT_24HOUR  }  } - `when` = Utils.formatDateRange(mContext, calEvent!!.startMillis, calEvent!!.endMillis, + `when` = Utils.formatDateRange(mContext, calEvent.startMillis, calEvent.endMillis,  flags)  b.append(`when`)  b.append(PERIOD_SPACE) @@ -2058,7 +2058,7 @@  if (i < 0 || i >= layouts!!.size) {  return null  } - var layout: StaticLayout? = layouts!![i] + var layout: StaticLayout? = layouts[i]  // Check if we have already initialized the StaticLayout and that  // the width hasn't changed (due to vertical resizing which causes  // re-layout of events at min height) @@ -2117,16 +2117,16 @@  x = mHoursWidth.toFloat()  p.setStrokeWidth(GRID_LINE_INNER_WIDTH)  // Line bounding the top of the all day area - mLines!![linesIndex++] = GRID_LINE_LEFT_MARGIN - mLines!![linesIndex++] = startY - mLines!![linesIndex++] = computeDayLeftPosition(mNumDays).toFloat() - mLines!![linesIndex++] = startY + mLines[linesIndex++] = GRID_LINE_LEFT_MARGIN + mLines[linesIndex++] = startY + mLines[linesIndex++] = computeDayLeftPosition(mNumDays).toFloat() + mLines[linesIndex++] = startY  for (day in 0..mNumDays) {  x = computeDayLeftPosition(day).toFloat() - mLines!![linesIndex++] = x - mLines!![linesIndex++] = startY - mLines!![linesIndex++] = x - mLines!![linesIndex++] = stopY + mLines[linesIndex++] = x + mLines[linesIndex++] = startY + mLines[linesIndex++] = x + mLines[linesIndex++] = stopY  }  p.setAntiAlias(false)  canvas.drawLines(mLines, 0, linesIndex, p) @@ -2160,7 +2160,7 @@  var alpha: Int = eventTextPaint.getAlpha()  eventTextPaint.setAlpha(mEventsAlpha)  for (i in 0 until numEvents) { - val event: Event = events!!.get(i) + val event: Event = events.get(i)  var startDay: Int = event.startDay  var endDay: Int = event.endDay  if (startDay > lastDay || endDay < firstDay) { @@ -3278,12 +3278,12 @@  for (i in 0 until numEvents) {  val event: Event? = events.get(i)  if (!event!!.drawAsAllday() || - !mShowAllAllDayEvents && event!!.getColumn() >= maxUnexpandedColumn + !mShowAllAllDayEvents && event.getColumn() >= maxUnexpandedColumn  ) {  // Don't check non-allday events or events that aren't shown  continue  } - if (event!!.startDay <= mSelectionDay && event!!.endDay >= mSelectionDay) { + if (event.startDay <= mSelectionDay && event.endDay >= mSelectionDay) {  val numRectangles =  if (mShowAllAllDayEvents) mMaxAlldayEvents.toFloat()  else mMaxUnexpandedAlldayEventCount.toFloat() 
diff --git a/src/com/android/calendar/EventInfoFragment.kt b/src/com/android/calendar/EventInfoFragment.kt index b421778..139da7b 100644 --- a/src/com/android/calendar/EventInfoFragment.kt +++ b/src/com/android/calendar/EventInfoFragment.kt 
@@ -353,18 +353,18 @@  window?.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)  val a: WindowManager.LayoutParams? = window?.getAttributes()  a!!.dimAmount = .4f - a!!.width = mDialogWidth - a!!.height = mDialogHeight + a.width = mDialogWidth + a.height = mDialogHeight    // On tablets , do smart positioning of dialog  // On phones , use the whole screen  if (mX != -1 || mY != -1) { - a!!.x = mX - mDialogWidth / 2 - a!!.y = mY - mDialogHeight / 2 - if (a!!.y < mMinTop) { - a!!.y = mMinTop + DIALOG_TOP_MARGIN + a.x = mX - mDialogWidth / 2 + a.y = mY - mDialogHeight / 2 + if (a.y < mMinTop) { + a.y = mMinTop + DIALOG_TOP_MARGIN  } - a!!.gravity = Gravity.LEFT or Gravity.TOP + a.gravity = Gravity.LEFT or Gravity.TOP  }  window.setAttributes(a)  } @@ -637,7 +637,7 @@  resources.getColor(R.color.event_info_headline_transparent_color)  )  sb.setSpan( - transparentColorSpan, timezoneIndex, displayedDatetime!!.length, + transparentColorSpan, timezoneIndex, displayedDatetime.length,  Spannable.SPAN_INCLUSIVE_INCLUSIVE  )  setTextCommon(view, R.id.when_datetime, sb) 
diff --git a/src/com/android/calendar/month/MonthByWeekAdapter.kt b/src/com/android/calendar/month/MonthByWeekAdapter.kt index a7f2943..90daa97 100644 --- a/src/com/android/calendar/month/MonthByWeekAdapter.kt +++ b/src/com/android/calendar/month/MonthByWeekAdapter.kt 
@@ -262,7 +262,7 @@  if (v !is MonthWeekEventsView) {  return super.onTouch(v, event)  } - val action: Int = event!!.getAction() + val action: Int = event.getAction()    // Event was tapped - switch to the detailed view making sure the click animation  // is done first. 
diff --git a/src/com/android/calendar/month/MonthByWeekFragment.kt b/src/com/android/calendar/month/MonthByWeekFragment.kt index c8e93f9..b6882b7 100644 --- a/src/com/android/calendar/month/MonthByWeekFragment.kt +++ b/src/com/android/calendar/month/MonthByWeekFragment.kt 
@@ -156,8 +156,8 @@  if (size <= 2) {  return  } - val first: Long = (pathSegments!![size - 2])?.toLong() as Long - val last: Long = (pathSegments!![size - 1])?.toLong() as Long + val first: Long = (pathSegments[size - 2])?.toLong() as Long + val last: Long = (pathSegments[size - 1])?.toLong() as Long  mTempTime.set(first)  mFirstLoadedJulianDay = Time.getJulianDay(first, mTempTime.gmtoff)  mTempTime.set(last) 
diff --git a/src/com/android/calendar/month/MonthWeekEventsView.kt b/src/com/android/calendar/month/MonthWeekEventsView.kt index 2f15de0..b8cdbb6 100644 --- a/src/com/android/calendar/month/MonthWeekEventsView.kt +++ b/src/com/android/calendar/month/MonthWeekEventsView.kt 
@@ -329,8 +329,8 @@  mMonthNumPaint.setStyle(Style.FILL)  mMonthNumPaint.setTextAlign(Align.RIGHT)  mMonthNumPaint.setTypeface(Typeface.DEFAULT) - mMonthNumAscentHeight = (-mMonthNumPaint!!.ascent() + 0.5f).toInt() - mMonthNumHeight = (mMonthNumPaint!!.descent() - mMonthNumPaint!!.ascent() + 0.5f).toInt() + mMonthNumAscentHeight = (-mMonthNumPaint.ascent() + 0.5f).toInt() + mMonthNumHeight = (mMonthNumPaint.descent() - mMonthNumPaint.ascent() + 0.5f).toInt()  mEventPaint = TextPaint()  mEventPaint.setFakeBoldText(true)  mEventPaint.setAntiAlias(true) @@ -544,15 +544,15 @@  i++  offset++  } - if (!mOddMonth!!.get(i)) { - while (++i < mOddMonth!!.size && !mOddMonth!!.get(i)); + if (!mOddMonth.get(i)) { + while (++i < mOddMonth.size && !mOddMonth.get(i));  r.right = computeDayLeftPosition(i - offset)  r.left = 0  p.setColor(mMonthBGOtherColor)  canvas.drawRect(r, p)  // compute left edge for i, set up r, draw - } else if (!mOddMonth!!.get(mOddMonth!!.size - 1.also { i = it })) { - while (--i >= offset && !mOddMonth!!.get(i)); + } else if (!mOddMonth.get(mOddMonth.size - 1.also { i = it })) { + while (--i >= offset && !mOddMonth.get(i));  i++  // compute left edge for i, set up r, draw  r.right = mWidth @@ -601,7 +601,7 @@  offset++  }  y = mMonthNumAscentHeight + TOP_PADDING_MONTH_NUMBER - var isFocusMonth: Boolean = mFocusDay!!.get(i) + var isFocusMonth: Boolean = mFocusDay.get(i)  var isBold = false  mMonthNumPaint.setColor(if (isFocusMonth) mMonthNumColor else mMonthNumOtherColor)  while (i < numCount) { @@ -611,10 +611,10 @@  if (i + 1 < numCount) {  // Make sure the color will be set back on the next  // iteration - isFocusMonth = !mFocusDay!!.get(i + 1) + isFocusMonth = !mFocusDay.get(i + 1)  }  } else if (mFocusDay.get(i) !== isFocusMonth) { - isFocusMonth = mFocusDay!!.get(i) + isFocusMonth = mFocusDay.get(i)  mMonthNumPaint.setColor(if (isFocusMonth) mMonthNumColor else mMonthNumOtherColor)  }  x = computeDayLeftPosition(i - offset) - SIDE_PADDING_MONTH_NUMBER @@ -857,7 +857,7 @@  mEventExtrasPaint.setFakeBoldText(true)  canvas.drawText(String.format(text, remainingEvents), x.toFloat(), y.toFloat(),  mEventExtrasPaint as Paint) - mEventExtrasPaint!!.setFakeBoldText(false) + mEventExtrasPaint.setFakeBoldText(false)  }    /** @@ -875,13 +875,13 @@  (strand.points as FloatArray).size === 0) {  continue  } - mDNATimePaint!!.setColor(strand.color) + mDNATimePaint.setColor(strand.color)  canvas.drawLines(strand.points as FloatArray, mDNATimePaint as Paint)  }  // Draw black last to make sure it's on top  val strand: Utils.DNAStrand? = mDna?.get(CONFLICT_COLOR) - if (strand != null && strand!!.points != null && strand!!.points?.size !== 0) { - mDNATimePaint!!.setColor(strand.color) + if (strand != null && strand.points != null && strand.points?.size !== 0) { + mDNATimePaint.setColor(strand.color)  canvas.drawLines(strand.points as FloatArray, mDNATimePaint as Paint)  }  if (mDayXs == null) { @@ -889,12 +889,12 @@  }  val numDays = mDayXs!!.size  val xOffset = (DNA_ALL_DAY_WIDTH - DNA_WIDTH) / 2 - if (strand != null && strand!!.allDays != null && strand!!.allDays?.size === numDays) { + if (strand != null && strand.allDays != null && strand.allDays?.size === numDays) {  for (i in 0 until numDays) {  // this adds at most 7 draws. We could sort it by color and  // build an array instead but this is easier. - if (strand!!.allDays?.get(i) !== 0) { - mDNAAllDayPaint!!.setColor(strand!!.allDays!!.get(i)) + if (strand.allDays?.get(i) !== 0) { + mDNAAllDayPaint.setColor(strand.allDays!!.get(i))  canvas.drawLine(mDayXs!![i].toFloat() + xOffset.toFloat(),  DNA_MARGIN.toFloat(), mDayXs!![i].toFloat() + xOffset.toFloat(),  DNA_MARGIN.toFloat() + DNA_ALL_DAY_HEIGHT.toFloat(), @@ -966,7 +966,7 @@  if (hover != null  && (mLastHoverTime == null || Time.compare(hover, mLastHoverTime) !== 0)) {  val millis: Long = hover.toMillis(true) - val date: String = Utils!!.formatDateRange(context, millis, millis, + val date: String = Utils.formatDateRange(context, millis, millis,  DateUtils.FORMAT_SHOW_DATE) as String  val accessEvent: AccessibilityEvent = AccessibilityEvent  .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) @@ -980,7 +980,7 @@  for (e in events) {  text.add(e!!.titleAndLocation.toString() + ". ")  var flags: Int = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_SHOW_YEAR - if (!e!!.allDay) { + if (!e.allDay) {  flags = flags or DateUtils.FORMAT_SHOW_TIME  if (DateFormat.is24HourFormat(context)) {  flags = flags or DateUtils.FORMAT_24HOUR @@ -988,7 +988,7 @@  } else {  flags = flags or DateUtils.FORMAT_UTC  } - text.add(Utils.formatDateRange(context, e!!.startMillis, e!!.endMillis, + text.add(Utils.formatDateRange(context, e.startMillis, e.endMillis,  flags).toString() + ". ")  }  } 
diff --git a/src/com/android/calendar/month/SimpleDayPickerFragment.kt b/src/com/android/calendar/month/SimpleDayPickerFragment.kt index 0444104..c0bce5d 100644 --- a/src/com/android/calendar/month/SimpleDayPickerFragment.kt +++ b/src/com/android/calendar/month/SimpleDayPickerFragment.kt 
@@ -133,7 +133,7 @@  @Override  override fun onChanged() {  val day: Time? = mAdapter!!.getSelectedDay() - if (day!!.year !== mSelectedDay!!.year || day!!.yearDay !== mSelectedDay.yearDay) { + if (day!!.year !== mSelectedDay.year || day!!.yearDay !== mSelectedDay.yearDay) {  goTo(day!!.toMillis(true), true, true, false)  }  } 
diff --git a/src/com/android/calendar/month/SimpleWeekView.kt b/src/com/android/calendar/month/SimpleWeekView.kt index c43774a..cd8eb84 100644 --- a/src/com/android/calendar/month/SimpleWeekView.kt +++ b/src/com/android/calendar/month/SimpleWeekView.kt 
@@ -207,11 +207,11 @@  if (time.monthDay === 1) {  firstMonth = time.month  } - mOddMonth!![i] = time.month % 2 === 1 + mOddMonth[i] = time.month % 2 === 1  if (time.month === focusMonth) { - mFocusDay!![i] = true + mFocusDay[i] = true  } else { - mFocusDay!![i] = false + mFocusDay[i] = false  }  if (time.year === today.year && time.yearDay === today.yearDay) {  mHasToday = true @@ -359,12 +359,12 @@  canvas.drawText(mDayNumbers!![0] as String, x.toFloat(), y.toFloat(), p)  i++  } - var isFocusMonth = mFocusDay!![i] + var isFocusMonth = mFocusDay[i]  mMonthNumPaint.setColor(if (isFocusMonth) mFocusMonthColor else mOtherMonthColor)  mMonthNumPaint.setFakeBoldText(false)  while (i < nDays) { - if (mFocusDay!![i] != isFocusMonth) { - isFocusMonth = mFocusDay!![i] + if (mFocusDay[i] != isFocusMonth) { + isFocusMonth = mFocusDay[i]  mMonthNumPaint.setColor(if (isFocusMonth) mFocusMonthColor else mOtherMonthColor)  }  if (mHasToday && mToday == i) { 
diff --git a/src/com/android/calendar/widget/CalendarAppWidgetService.kt b/src/com/android/calendar/widget/CalendarAppWidgetService.kt index 0b55c2a..0d1018f 100644 --- a/src/com/android/calendar/widget/CalendarAppWidgetService.kt +++ b/src/com/android/calendar/widget/CalendarAppWidgetService.kt 
@@ -232,7 +232,7 @@  views.setOnClickFillInIntent(R.id.appwidget_loading, intent)  return views  } - if (mModel!!.mEventInfos!!.isEmpty() || mModel!!.mRowInfos!!.isEmpty()) { + if (mModel!!.mEventInfos.isEmpty() || mModel!!.mRowInfos.isEmpty()) {  val views = RemoteViews(  mContext?.getPackageName(),  R.layout.appwidget_no_events @@ -248,12 +248,12 @@  return views  }  val rowInfo: RowInfo? = mModel?.mRowInfos?.get(position) - return if (rowInfo!!.mType == RowInfo!!.TYPE_DAY) { + return if (rowInfo!!.mType == RowInfo.TYPE_DAY) {  val views = RemoteViews(  mContext?.getPackageName(),  R.layout.appwidget_day  ) - val dayInfo: DayInfo? = mModel?.mDayInfos?.get(rowInfo!!.mIndex) + val dayInfo: DayInfo? = mModel?.mDayInfos?.get(rowInfo.mIndex)  updateTextView(views, R.id.date, View.VISIBLE, dayInfo!!.mDayLabel)  views  } else { @@ -267,9 +267,9 @@  } else {  views = RemoteViews(mContext?.getPackageName(), R.layout.widget_item)  } - val displayColor: Int = Utils.getDisplayColorFromColor(eventInfo!!.color) + val displayColor: Int = Utils.getDisplayColorFromColor(eventInfo.color)  val now: Long = System.currentTimeMillis() - if (!eventInfo!!.allDay && eventInfo!!.start <= now && now <= eventInfo!!.end) { + if (!eventInfo.allDay && eventInfo.start <= now && now <= eventInfo.end) {  views.setInt(  R.id.widget_row, "setBackgroundResource",  R.drawable.agenda_item_bg_secondary @@ -289,7 +289,7 @@  updateTextView(views, R.id.title, eventInfo.visibTitle as Int, eventInfo.title)  views.setViewVisibility(R.id.agenda_item_color, View.VISIBLE)  val selfAttendeeStatus: Int = eventInfo.selfAttendeeStatus as Int - if (eventInfo!!.allDay) { + if (eventInfo.allDay) {  if (selfAttendeeStatus == Attendees.ATTENDEE_STATUS_INVITED) {  views.setInt(  R.id.agenda_item_color, "setImageResource", @@ -345,7 +345,7 @@  var start: Long = eventInfo.start as Long  var end: Long = eventInfo.end as Long  // An element in ListView. - if (eventInfo!!.allDay) { + if (eventInfo.allDay) {  val tz: String? = Utils.getTimeZone(mContext, null)  val recycle = Time()  start = Utils.convertAlldayLocalToUTC(recycle, start, tz as String)